// let person={
//     name:'3222',
//     age: 12
// }

// // let t1= typeof person;
// let t2= keyof person

// console.log(a);

// interface Person {
//     name: string;
//     age: number;
// }
// let person: Person = {
//     name: 'Jarid',
//     age: 35
// };

// let personProps: keyof Person; // 'name' | 'age'

// // let a:personProps='name'

// let b:'name'|'age'='name';

// let b1:keyof Person='name';

// let b2:personProps='name'; //报错


// let abc:T1={
//     name: 'name',
//     age: 'age'
// }


//    [key in keyof typeof reducers]: ReturnType<typeof reducers[key]>
//  type T1= [key in keyof typeof Person]: ReturnType<typeof person[key]>;

// type T2={[key in keyof Person]: string;


// type Partial<T> = { [P in keyof T]?: T[P] };

interface A {
  a1: string;
  a2: number;
  a3: boolean;
}

type aPartial = Partial<A>;

const a: aPartial = {}; // 不会报错


